package com.ruoyi.xiaoshou.mapper;

import com.ruoyi.IndexDtoByThree;
import com.ruoyi.xiaoshou.domain.SaleOrder;
import com.ruoyi.xiaoshou.dto.IndexSaleDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 销售订单Mapper接口
 *
 * @author ruoyi
 * @date 2024-10-30
 */
public interface SaleOrderMapper {
    /**
     * 查询销售订单
     *
     * @param Id 销售订单主键
     * @return 销售订单
     */
    public SaleOrder selectSaleOrderById(int Id);
    public IndexSaleDto getSaleOrderCount();
    public SaleOrder getOrderByCode(String orderCode);
    public IndexDtoByThree getThreeCountToIndex();
    /**
     * 查询销售订单列表
     *
     * @param saleOrder 销售订单
     * @return 销售订单集合
     */
    public List<SaleOrder> selectSaleOrderList(SaleOrder saleOrder);
    public List<SaleOrder> noReconList(SaleOrder saleOrder);

    /**
     * 新增销售订单
     *
     * @param saleOrder 销售订单
     * @return 结果
     */
    public int insertSaleOrder(SaleOrder saleOrder);

    public int getOrderId(String code);

    public List<SaleOrder> getAllList();

    /**
     * 修改销售订单
     *
     * @param saleOrder 销售订单
     * @return 结果
     */
    public int updateSaleOrder(SaleOrder saleOrder);

    /**
     * 删除销售订单
     *
     * @param Id 销售订单主键
     * @return 结果
     */
    public int deleteSaleOrderById(Integer Id);

    /**
     * 批量删除销售订单
     *
     * @param Ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSaleOrderByIds(Integer[] Ids);

    List<SaleOrder> selectSaleOrderListByOrderCodes(@Param("codes") String[] codes);

    List<SaleOrder> selectSaleOrderListForReciveOrder(SaleOrder saleOrder);
}
